Automated Debugging: Are We Close

نویسنده

  • Andreas Zeller
چکیده

2 Computer Automated Debugging: Are We Close? F or the past 50 years, software engineers have enjoyed tremendous productivity increases as more and more tasks have become automated. Unfortunately, debugging—the process of identifying and correcting a fail-ure's root cause—seems to be the exception, remaining as labor-intensive and painful as it was five decades ago. An engineer or programmer still has to notice something, wonder why it happens, set up hypotheses , and then attempt to confirm or refute them. In theory, there is no reason to continue this legacy. Debugging can be just as disciplined, systematic, and quantifiable as any other area of software engineer-ing—which means that we should eventually be able to automate at least part of it. So far, research has concentrated on program analysis because of its roots in compiler construction. But analysis requires complete knowledge about the program being examined and does not scale well to large programs. Testing is another way to gather knowledge about a program because it helps weed out the circumstances that aren't relevant to a particular failure. If testing reveals that only three of 25 user actions are relevant, for example, you can focus your search for the fail-ure's root cause on the program parts associated with these three actions. If you can automate the search process, so much the better. This is the premise of Delta Debugging, an algorithm that uses the results of automated testing to systematically narrow the set of failure-inducing circumstances. 1 Programmers supply a test function for each bug and hardcode it into any imperative language. The test function checks a set of changes to determine if the failure is present or if the outcome is unresolved and feeds that information to the Delta Debugging code. Programmers can either hardcode the algorithm, available from the Delta Debugging Web site adapt the core of Wynot, a prototype debugger written in Python that runs on a Unix or Linux system. Both the algorithm and Wynot (short for " worked yesterday , not today ") fit with any imperative language, and Wynot is platform independent. Work on a " debugging server " is in progress. The idea is to have a programmer submit the program to be examined along with invocation details to a Web site, choose from a menu how to identify a failure, and click on " Submit. " Wynot will then automatically isolate the failure-inducing circumstances …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Low-Overhead Bug Fingerprinting for Fast Debugging

There is a gap between the information available at the time of a software failure and the information actually shipped to developers in the corresponding bug report. As a result, identifying the cause of the bug based on this bug report is often difficult. To close this gap, we propose bug fingerprints—an augmentation of classic automated bug reports with runtime information about how the repo...

متن کامل

Prioritising Model-Based Debugging Diagnostic Reports

Model-based debugging has proved successful as a tool to guide automated debugging efforts, but the technique may suffer from large result sets in practice, since no means to rank or discriminate between the returned candidate explanations are available. We present a unique combination of modeland spectrum-based fault localisation approach to rank explanations and show that the combined framewo...

متن کامل

Automated Debugging Extensions of the Opium Trace Analyser

Traces of program executions tell how programs behave in given cases. They are a helpful source of information for automated debugging. Opium is an automated trace analyser for Prolog programs. It is programmable and extendable. It provides a trace query language and abstract views of executions as a basis for automated debugging. Opium has shown its capabilities to build abstract tracers and a...

متن کامل

Automated Testing and Debugging of SAT and QBF Solvers

Robustness and correctness are essential criteria for SAT and QBF solvers. We develop automated testing and debugging techniques designed and optimized for SAT and QBF solver development. Our fuzz testing techniques are able to find critical solver defects that lead to crashes, invalid satisfying assignments and incorrect satisfiability results. Moreover, we show that sequential and concurrent ...

متن کامل

A Pragmatic Survey of Automated Debugging

This article proposes a structuring view of the area of automated debugging. Nineteen automated debugging systems are analyzed. Thirteen existing automated debugging techniques are brieey evaluated from a pragmatic point of view. The three underlying strategies are identiied, namely veriication with respect to speciication, checking with respect to language knowledge and ltering with respect to...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • IEEE Computer

دوره 34  شماره 

صفحات  -

تاریخ انتشار 2001